\chapter{Analýza citlivosti kvality řízení na redukci problému}

Při řízení pomocí MPC regulátoru je nejvýhodnější mít co nejmenší problém kvadratického programování. Menší problém lze vyřešit s méně výkonným procesorem, pokud kvadratický problém řešíme on-line, nebo s menší spotřebou paměti, pokud používáme off-line řešení. Obě metody redukce problému vedou ke změně chování regulátoru. Pokud příliš zredukujeme měkká omezení, hrozí nám, že regulátor nebude dostatečně reagovat a předcházet jejich překročení. Pokud budeme příliš blokovat vstupy regulátoru, omezíme možnosti regulátoru měnit vstupy a tím zhoršíme jeho chování při sledování požadovaných referencí.

V této kapitole postupně probereme naše cíle řízení pro model automobilu, nastavení regulátoru a změny chování, pokud měníme blokování vstupů, jejich omezení a různé vzájemné kombinace.

\section{Cíle řízení}

Simulaci provádíme na generované trajektorii ve $2$D rovině $XY$, která je ukázána na obrázku~\ref{fig:trajectory}. Tato trajektorie představuje cestu těžiště auta po ploše, kde $X$ a $Y$ představují standardní souřadnice roviny. Z trajektorie v $XY$ vypočteme trajektorie pro úhel natočení automobilu ($\varphi$) od osy $X$ a úhlovou rychlost natáčení ($\dot{\varphi}$). Sledovanými veličinami je úhel natočení automobilu od osy $X$ $\varphi$, rychlost natáčení automobilu $\dot{\varphi}$ a pozice středu automobilu v ose $Y$. Zároveň aplikujeme měkká omezení na rychlost otáčení $\dot{\varphi}$, tím simulujeme požadavek na malou rychlost otáčení automobilu pro lepší komfort pasažérů.

\begin{figure}
\centering
\includegraphics{ref_path2}
\caption{Referenční trajektorie.}
\label{fig:trajectory}
\end{figure}

\section{Parametry simulace}

\subsection{Konstanty modelu automobilu}

Konstanty do modelu jsme získali z nástroje pro jejich výpočet \cite{constants} a jsou uvedeny v Tabulce \ref{tab:konstanty_model}, za konstantu gravitačního zrychlení jsme dosadili standardně používanou hodnotu $9.81\ ms^{-2}$.

\begin{table}
\begin{center}
\begin{tabular}{|c|c|c|}
\hline
konstanta&hodnota&jednotka\\
\hline
a&$1,446$&$(m)$\\
\hline
b&$1,408$&$(m)$\\
\hline
c&$1,437$&$(m)$\\
\hline
I&$1549,034$&$(kgm^2)$\\
\hline
m&$2220$&$(kg)$\\
\hline
g&$9,81$&$(ms^{-2})$\\
\hline

\end{tabular}
\end{center}
\caption{Hodnoty konstant pro model automobilu.}
\label{tab:konstanty_model}
\end{table}

\subsection{Vstupy a výstupy modelu}

Výstup modelu automobilu je ve tvaru:
\begin{align}
y(k)&=
\begin{pmatrix}
\dot{y}&\dot{x}&\varphi&\dot{\varphi}&Y&X
\end{pmatrix}^T.&
(
ms^{-1},ms^{-1},rad,rad s^{-1},m,m
)
\end{align}

První dvě proměnné $\dot{y}$ a $\dot{x}$ jsou rychlosti automobilu v osách automobilu, další představuje natočení automobilu $\varphi$ od osy $X$, čtvrtá proměnná $\dot{\varphi}$ představuje rychlost otáčení automobilu, poslední dvě proměnní $Y$ a $X$ představují polohu těžiště automobilu v globálních souřadnicích.

Vstup modelu je ve tvaru:
\begin{align}
u(k)&=\begin{pmatrix}
\delta f&s_{fl}&s_{fr}
\end{pmatrix}.
&
(^{\circ},-,-)
\end{align}
První proměnná $\delta f$ je natočení přední nápravy, zbylé proměnné $s_{fl}$ a $s_{fr}$  představují skluz levého a pravého kola přední nápravy.

Výstup systému je vstup regulátoru a vstup systému je výstup regulátoru.

\subsection{Nastavení regulátoru}

Regulátor minimalizuje kritérium které se skládá ze tří částí, první část minimalizuje rozdíl výstupu a reference a je ve tvaru:

\begin{align}
J_{\mathbf{Q}}(U)&=\frac{1}{2T_p}\sum_{k=0}^{T_p-1}\left((y(k)-r(k))^T\mathbf{Q}(y(k)-r(k))\right),\\
\text{s.t. }&x(k+1)=\mathbf{M}x(k)+\mathbf{M}u(k)+d(k),\nonumber\\
&y(k)=\mathbf{C}x(k)+\mathbf{D}u(k),k=0,1,\dots,T_p-1,\nonumber\\
&d(k)=\xi(k+1)-\mathbf{A}\xi(k)-\mathbf{B}u_0,\nonumber\\
&\xi(k)\text{ vývoj stavu nelineárního systému}, k=0,1,\dots,T_p,\nonumber\\
&u_0\text{ vstup aplikovaný v předchozím kroku},\nonumber\\
&u_{min}\leq u(k)\leq u_{max},k=0,1,\dots,T_p-1.\nonumber
\end{align}

Druhá část minimalizuje diferenci vstupu a je ve tvaru:

\begin{align}
J_{\mathbf{R}}(U)&=\frac{1}{2T_{vz}}\sum_{k=0}^{T_{k}-1}\left((u(k)-u(k-1))^T\mathbf{Q}(u(k)-u(k-1))\right),\\
\text{s.t. }&x(k+1)=\mathbf{M}x(k)+\mathbf{M}u(k)+d(k),\nonumber\\
&y(k)=\mathbf{C}x(k)+\mathbf{D}u(k),k=0,1,\dots,T_p-1,\nonumber\\
&d(k)=\xi(k+1)-\mathbf{A}\xi(k)-\mathbf{B}u_0,\nonumber\\
&\xi(k)\text{ vývoj stavu nelineárního systému}, k=0,1,\dots,T_p,\nonumber\\
&u_0\text{ vstup aplikovaný v předchozím kroku},\nonumber\\
&u_{min}\leq u(k)\leq u_{max},k=0,1,\dots,T_p-1.\nonumber
\end{align}

Poslední část minimalizuje měkká omezení:

\begin{align}
J_{\mathbf{\Omega}}(U,Z)&=\frac{1}{2N}\sum_{k=0}^{T_p-1}\left((y(k)-z(k))^T\mathbf{\Omega}(y(k)-z(k))\right),\\
\text{s.t. }&x(k+1)=\mathbf{M}x(k)+\mathbf{M}u(k)+d(k),\nonumber\\
&y(k)=\mathbf{C}x(k)+\mathbf{D}u(k),k=0,1,\dots,T_p-1,\nonumber\\
&d(k)=\xi(k+1)-\mathbf{A}\xi(k)-\mathbf{B}u_0,\nonumber\\
&\xi(k)\text{ vývoj stavu nelineárního systému}, k=0,1,\dots,T_p,\nonumber\\
&u_0\text{ vstup aplikovaný v předchozím kroku},\nonumber\\
&u_{min}\leq u(k)\leq u_{max},k=0,1,\dots,T_p-1,\nonumber\\
&y_{min}\leq z(k)\leq y_{max},k=0,1,\dots,T_p-1,\nonumber\\
&N\text{ počet kontrol měkkých omezení}.\nonumber
\end{align}

Stav nelineárního systému $\xi(k)$ je vypočítán ze známého stavu systému $x(0)=\xi(0)$ a při aplikování konstantního vstupu $u_0$, což je vstup, který byl aplikován v předchozím kroku.

Celkové kritérium tedy je:
\begin{equation}
J(U,Z)=J_\mathbf{Q}(U)+J_\mathbf{R}(U)+J_\mathbf{\Omega}(U,Z).
\end{equation}

Doba predikce $T_p$ regulátoru je $30$ kroků, vzorkovací perioda je $0,01$ sekundy, takže regulátor vidí $0,3$ sekundy ve vývoji systému. Sledujeme veličiny $\varphi$ a $\dot{\varphi}$ s váhou $10$, polohu sledujeme s váhou $20$, ostatní veličiny, což jsou rychlost $\dot{x}$ a $\dot{y}$ a polohu v ose $X$, nesledujeme a proto mají nastavenou hodnotu váhy $0$. Matice $\mathbf{Q}$ je tedy ve tvaru:
\begin{equation}
\mathbf{Q}=\text{diag}(0,0,10,10,20,0).
\label{eq:Q_mat}
\end{equation}

Váhy pro velikost vstupů je pro natočení přední nápravy $\delta f=1$, pro skluzy předních kol $s_{fl}$ a $s_{fr}$ jsou nastaveny na váhu $100\ 000$. Tento velký rozdíl je způsoben tím, že veličiny mají rozdílné rozsahy. Tedy natočení přední nápravy má $100$krát větší váhu než skluz. Přesto je skluz přes normalizaci nastaven $1000$krát citlivěji, než natočení přední nápravy z důvodu aby regulátor používal více natočení nápravy, než skluz. Menší rozdíl vedl k tomu, že přední náprava se příliš nenatáčela, kdežto skluzy byly na limitech, čímž omezovali možnosti regulátoru ovlivňovat  dynamiku systému. Matice $\mathbf{R}$ má tedy tvar:
\begin{equation}
\mathbf{R}=\text{diag}(1,100\ 000,100\ 000).
\label{eq:R_mat}
\end{equation}
Tvrdá omezení vstupu jsou ve tvaru:
\begin{align}
u_{max}&=
\begin{pmatrix}
5&0,05&0,05
\end{pmatrix},\\
u_{min}&=
\begin{pmatrix}
-5&-0,05&-0,05
\end{pmatrix}.
\end{align}

Matice vážení měkkých omezení:
\begin{equation}
\mathbf{\Omega}=\text{diag}(0,0,0,1000,0,0).
\label{eq:H_mat}
\end{equation}
Vidíme tedy, že měkké omezení aplikujeme pouze na úhlovou rychlost $\dot{\varphi}$. Omezení jsou nastavena na:
\begin{align}
y_{max}&=\begin{pmatrix}
\times&\times&\times&0,17&\times&\times
\end{pmatrix},\\
y_{min}&=\begin{pmatrix}
\times&\times&\times&-0,17&\times&\times
\end{pmatrix}.
\end{align}
Měkká omezení jsou aplikována případ od případu a jsou popsána v každém případě zvlášť.

\input{./kapitoly/analyza_blokovani}

\input{./kapitoly/analyza_omezeni}

\input{./kapitoly/analyza_combine}


















